Skip to main content

详解 line-height 与 vertical-align

· 3 min read

line-height

该属性可用于 块级元素 和 行内非替换元素,取值如下:

  • normal,默认值,标准的文本行高,大约为 1.2,取决于 font-family
  • number计算值 = 字体大小 * number推荐使用 该取值
  • %计算值 = 字体大小 * 百分数
  • length,设置固定行高

对于 块级元素line-heigt 属性决定了块级元素内部的 文本单位行 的高度。

pic.nm

此时的 line-heignt: 1.15,所以单位行高差不多为 18px,如果我们调整 line-height: 2,此时单位行高就变成了 32px

pic.nm

需要注意的是只有 块级元素 内部存在文本或者 <br /> 换行元素, line-height 才会生效。

对于 行内非替换元素line-height 决定了其高度,当然前提是元素内部存在文本,另外需要注意的是 Chrome 控制台中显示的行内元素高度实际上和真正的高度并不一致。

这里的 body 高度由其内容撑开,此时为 32px,因为这里我给行内元素设置的 line-height: 2

pic.nm

但是,Chrome 显示的 span 高度为文字大小。

pic.sm

最后再补充一下,给 块级元素 设置 line-height 本质上就是给内部的文本行设置 line-height,因为该属性具有继承性,所以当我们给内部的行内元素设置了 line-height 之后,实际上就覆盖掉了来自块级元素继承过来的 line-height

vertical-align

用来指定行内元素(inline)或表格单元格(table-cell)元素的垂直对齐方式,对块级元素无效,取值如下:

  • baseline
  • super
  • middle
  • sub
  • text-top
  • text-bottom
  • <length>
  • <percentage>

Reference